Verifying Fence Elimination Optimisations

نویسندگان

  • Viktor Vafeiadis
  • Francesco Zappa Nardelli
چکیده

We consider simple compiler optimisations for removing redundant memory fences in programs running on top of the x86-TSO relaxed memory model. While the optimisations are performed using standard thread-local control flow analyses, their correctness is subtle and relies on a non-standard global simulation argument. The implementation and the proof of correctness are programmed in Coq as part of CompCertTSO, a fully-fledged certified compiler from a concurrent extension of a C-like language to x86 assembler. In this article, we describe the soundness proof of the optimisations and evaluate their effectiveness.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Extraction and Elimination of parallel obstacles for image restoration

We propose a technique for extracting and remove a fence region in a still image. The proposed method uses the fact that the fence region consists of periodic and parallel straight lines in a space. Characteristic of parallel and periodic lines in an image is used for the fence parallel to the image plane. Property of a projection of periodic parallel lines in a space is used for the other case...

متن کامل

Program transformations in weak memory models

We analyse the validity of common optimisations on multi-threaded programs in two memory models—the DRF guarantee and the Java Memory Model. Unlike in the single-threaded world, even simple program transformations, such as common subexpression elimination, can introduce new behaviours in shared-memory multi-threading with an interleaved semantics. To validate such optimisations, most current pr...

متن کامل

Modular Control-Flow Analysis with Rank 2 Intersection Types

The performance of optimising compilers crucially depends on the availability of controlflow information at compile time. For any first-order imperative program, such information is available via a flowchart constructed from the program text. Consequently, traditional dataflow analyses can be used to perform a series of compile-time program optimisations (Aho et al. 1986). For higher-order prog...

متن کامل

Compositional Verification of Compiler Optimisations on Relaxed Memory

A valid compiler optimisation transforms a block in a program without introducing new observable behaviours to the program as a whole. Deciding which optimisations are valid can be difficult, and depends closely on the semantic model of the programming language. Axiomatic relaxed models, such as C++11, present particular challenges for determining validity, because such models allow subtle effe...

متن کامل

When can we do better than autarky?

This paper provides a necessary and sufficient condition for the existence of nonautarkic contract in a risk sharing model with two-sided lack of commitment. Verifying the condition takes just one Gaussian elimination of a matrix. Published by Elsevier B.V.

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2011